#include <stdio.h>

/**
 * 题目：输入两个正整数m和n，求其最大公约数和最小公倍数。
 * 程序分析：
 * （1）最小公倍数=输入的两个数之积除于它们的最大公约数，关键是求出最大公约数；
 * （2）求最大公约数用辗转相除法（又名欧几里德算法）
*/
int main(int argc, char const *argv[])
{
    int a, b;
    int i, j, s, t;

    printf("输入两个正整数m和n:");
    scanf("%d%d", &i, &j);

    s = i;
    t = j;
    if (s<t)
    {
        s^=t;
        t^=s;
        s^=t;
    }

    printf("s,t:%d,%d\n", s, t);
    a = s%t;
    while (a != 0)
    {
        s = t;
        t = a;
        a = s % t;
    }
    printf("%d和%d的最大公约数是:%d\n", i, j, t);
    
    b = (i*j) / t;
    printf("%d和%d的最小公倍数是:%d\n", i, j, b);

    return 0;
}